#pragma once
#include <StaticMesh.h>

namespace grflib
{
	namespace engine
	{
		namespace aux
		{
			class CBillboardMesh : public CStaticMesh
			{
			public:
				CBillboardMesh();
				virtual ~CBillboardMesh(void);
                				
                virtual HRESULT PreRender(ID3D10Device *pd3dDevice,
                    const D3DXMATRIX *pWorldMat,
                    double fTime,
                    float fElapsedTime,
                    UINT pass);
			};

            class CAxialBillboardMesh : public CStaticMesh
			{
			public:
				CAxialBillboardMesh();
                CAxialBillboardMesh(const float3 &axis);
				virtual ~CAxialBillboardMesh(void);
                				
                virtual HRESULT PreRender(ID3D10Device *pd3dDevice,
                    const D3DXMATRIX *pWorldMat,
                    double fTime,
                    float fElapsedTime,
                    UINT pass);

                //Set/Get Axis
                inline float3 &Axis(void) {return m_axis;}

            private:
                // y axis by default
                float3 m_axis;
			};

		} //namespace aux
	} //namespace engine
} //namespace grflib